Ctrl.prototype.constructor = Ctrl;

/**
 *	@class
 *	Super classe Ctrl.
 *	Tem como objetivo gerenciar os dados trazidos do backend através de requisições
 *	mantê-los, e fornecê-los para o client
 *	Em geral, esta classe não é instânciada. Os controles efetivamente herdam-na.
 */
function Ctrl (args) {
	this.defEvtScope = 'CTRL';

	/**
	 *	Construtor do Ctrl
	 */
	this.init = function () {
		return this;
	}


	/**
	 *	Estes campos são a base para o registro de operações de callback, ou seja,
	 *	operações executadas após a requisições no backend. São implementados nas sub-classes.
	 *	A eles devem ser atribuídos ponteiros para funções. Ex.: this.oper.load = function (...)
	 */
	this.oper = new Object ();
	this.oper.load = new Object ();

	/**
		Este método realiza o carregamento inicial dos dados do controle com o backend.
		@param reqObj Objeto atual
		@param oper Nome da operação a ser executada como callback
		@param args Dados a serem enviados para o backend
		@see Ctrl#oper
	*/
	this.load = function (args) {
		ReqMgr.queue ({reqObj: this, oper: 'load', params: args});
	}
}
